@keyframes pulsate {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.98);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes click-press {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}

:focus-visible {
  outline: 2px solid var(--accent);
}

/* Hide outline if focus was set programmatically */
[data-programmatic-focus]:focus {
  outline: none;
}

.modal-close {
  color: var(--foreground);
  float: right;
  font-size: 38px;
  font-weight: 600;
  min-width: 20px;
  max-width: 20px;
  min-height: 20px;
  max-height: 20px;
  display: flex;
  align-items: center;
  justify-content: end;
  margin-left: auto;
  line-height: var(--general-line-height);
  letter-spacing: var(--general-letter-spacing);
}

.modal-close:hover,
.modal-close:focus {
  text-decoration: none;
  cursor: pointer;
  animation: pulsate 0.25s ease both;
}

.modal-close:active {
  animation: click-press 0.25s ease both;
}

.button-container div:hover {
  font-weight: bold;
  animation: pulsate 0.25s ease both;
}

.button-container div:active {
  font-weight: bold;
  animation: click-press 0.25s ease both;
}

.button-container {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  width: fit-content;
  height: fit-content;
}

.button-container div {
  border-radius: 4px;
  background-color: var(--alt-background);
  padding: 6px;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 400;
  color: var(--foreground);
  line-height: var(--general-line-height);
  letter-spacing: var(--general-letter-spacing);
  cursor: pointer;
}

.text-input {
  height: fit-content;
  width: initial;
  background-color: var(--alt-background);
  color: var(--foreground);
  border: 0px;
  padding: 4px;
  padding-left: 8px;
  border-radius: 4px;
  font-size: 16px;
  line-height: var(--general-line-height);
  letter-spacing: var(--general-letter-spacing);
}

.text-input::placeholder {
  color: var(--alt-foreground);
}

.label-container {
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  justify-items: center;
  gap: 5px;
  width: auto;
}

.label-container p {
  line-height: var(--general-line-height);
  color: var(--alt-foreground);
  font-size: 18px;
  font-weight: 400;
  margin: 0;
  letter-spacing: var(--general-letter-spacing);
}

.dropdown:hover {
  animation: pulsate 0.25s ease both;
}

.dropdown {
  height: fit-content;
  width: fit-content;
  background: var(--alt-background);
  padding: 3px;
  color: var(--foreground);
  display: inline-flex;
  font-size: 16px;
  border-radius: 4px;
  border-width: 0px;
  line-height: var(--general-line-height);
  letter-spacing: var(--general-letter-spacing);
}

.dropdown option {
  color: var(--foreground);
}

.checkbox:hover {
  font-weight: bold;
  animation: pulsate 0.15s ease both;
}

.checkbox:active {
  font-weight: bold;
  animation: click-press 0.15s ease both;
}

.checkbox {
  display: inline-flex;
  min-width: 12px;
  min-height: 12px;
  border-radius: 4px;
  padding: 4px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.checkbox p {
  display: inline;
  pointer-events: none;
}

.radio-buttons {
  display: flex;
  flex-direction: row;
  gap: 10px;
}